package com.net.protocol;

import com.net.protocol.exception.IllegalOperateException;
import com.net.protocol.message.MessageBuilder;
import com.net.protocol.message.body.sender.LoginASK;
import com.net.protocol.message.body.sender.SearchTimeASK;

public class NetController {

    public static void test(String name, String pwd) {
        try {
            TCPManager.getInstance().testSend(name, pwd);
        } catch (IllegalOperateException e) {
            e.printStackTrace();
        }
    }

    /**
     * 登录
     *
     * @param name 姓名
     * @param pwd  密码
     * @return
     */
    public static int login(String name, String pwd) {
        try {
            return TCPManager.getInstance().
                    sendACKMessage(MessageBuilder.build(new LoginASK(name, pwd)));
        } catch (Exception e) {
            e.printStackTrace();
        }
        return -1;
    }

    /**
     * 按时间搜索
     *
     * @param startTime 开始时间 yyyy-MM-dd HH:mm:ss
     * @param endTime   结束时间 yyyy-MM-dd HH:mm:ss
     * @return
     */
    public static int searchTime(String startTime, String endTime) {
        //todo 数据对接
        try {
            return TCPManager.getInstance().
                    sendACKMessage(MessageBuilder.build(new SearchTimeASK(startTime, endTime)));
        } catch (Exception e) {
            e.printStackTrace();
        }
        return -1;
    }

    /**
     * 按大小搜索
     *
     * @param min 最小值 M
     * @param max 最大值 M
     * @return
     */
    public static int searchSize(int min, int max) {
        //todo 数据对接
        return 0;
    }

    /**
     * 按标签搜索
     *
     * @param args 标签数组
     */
    public static int searchTab(String[] args) {
        //todo 数据对接
        return 0;
    }

    /**
     * 无条件检索
     * @return
     */
    public static int search() {
        //todo 数据对接
        return 0;
    }

    /**
     * 查询文件详细
     *
     * @param fileName 文件名
     * @return
     */
    public static int checkDetail(String fileName) {
        //todo 数据对接
        return 0;
    }

    /**
     * 清空磁盘
     *
     * @return
     */
    public static int clearDisk() {
        //todo 数据对接
        return 0;
    }

    /**
     * 删除文件
     *
     * @param fileNames 文件名数组
     * @return
     */
    public static int deleteFile(String[] fileNames) {
        //todo 数据对接
        return 0;
    }

    /**
     * 播放文件
     *
     * @param fileName 文件名
     * @param offset   偏移位子
     * @return
     */
    public static int playFile(String fileName, int offset) {
        //todo 数据对接
        return 0;
    }

    /**
     * 添加标签
     *
     * @param tag 标签内容
     * @return
     */
    public static int addTAG(int[] number, String tag) {
        //todo 数据对接
        return 0;
    }

    /**
     * 设置为单通道显示
     *
     * @param number 通道号 通道号对应：0：标清1    1：标清2
     *               2：标清3    3：标清4   4：高清
     * @return
     */
    public static int displayOne(int number) {
        //todo 数据对接
        return 0;
    }

    /**
     * 设置为多通道显示
     *
     * @param leftTop     左上显示的通道号
     * @param leftBottom  左下显示的通道号
     * @param rightTop    右上显示的通道号
     * @param rightBottom 右下显示的通道号
     * @return
     */
    public static int displayMore(int leftTop, int leftBottom, int rightTop, int rightBottom) {
        //todo 数据对接
        return 0;
    }

    /**
     * 修改密码
     *
     * @param name 用户名
     * @param pwd  密码
     * @return
     */
    public static int modifyPwd(String name, String pwd) {
        //todo 数据对接
        return 0;
    }

    /**
     * 查询文件标签
     *
     * @param fileName 文件名
     * @return
     */
    public static int searchFileTAG(String fileName) {
        //todo 数据对接
        return 0;
    }

    /**
     * 暂停播放
     *
     * @param fileName
     * @return
     */
    public static int pausePlay(String fileName) {
        //todo 数据对接
        return 0;
    }

    /**
     * 停止回放
     * @return
     */
    public static int stopPlay() {
        //todo 数据对接
        return 0;
    }
}
